MDAC惊魂

新觉青年
mdac.gif

最近几天被MDAC折腾的实在喘不过气来。MDAC 相关的所有软件都无法使用,打击啊!包括:腾讯旗下的新版 QQ 和 TM,出现的那个 0x00000005 错误;sonystage 出现的数据库错误;还有财智 6出现的无法打开账簿;dx 挂载的驱动程序自动拖挂,造成无法启用 dx 加速等等问题。这个 MDAC 简直是恶心到极点。日常生活都被打乱了。经过无数次的测试,之后总结出了解决方案。供大家参考,如果你的 QQ2009preview 也无法登陆不妨试一下。

本人系统是 win2003 EE SP2
其实使用 sfc /scannow 是最好的办法,但是无奈,不知道为何我的 RPC 服务被拒绝而无法使用 sfc=。=退而求其次,实行曲线救国的路了。第一步,重装 MDAC
Win2003 系统内建了 MDAC2.8,所以我选择修复性安装。方法如下,

点击 开始->我的计算机->工具菜单->文件夹->选项
点击 查看
在高级设置下,点击 显示隐藏档和档夹
去掉隐藏已知文件的扩展名选项
点击应用 点击确认
在 WINDOWS 的 INF 目录下,右键点击 MDAC.INF,选择 安装
当提示你插入系统光盘的时候,选择如下方法 插入光盘到光驱
点击浏览按钮
在文件名称输入光驱盘符,包含 I386 目录
点击打开
或者直接输入 %systemroot%\windows\servicepackfiles\i386 点击打开

然后重启,看行不行。我重启后,发现问题依旧,使用COMPONENT CHECKER检查下版本,发现是 SP2 的版本。结果没有问题。但是安装完毕后弹出一个 odbcconf 的装载错误信息"INSTALLDRVRMGR: Unable to install driver manager"。查看了一下 log 文件,居然修改注册表拒绝。遂检查注册表权限,发现 HKEY_CLASSES_ROOT 居然连管理员都没有控制权(我使用的是管理帐号登录),遂添加自己的管理权限并取得所有权。嘿,再次重装 MDAC 成功了而且并没有错误提示。

第二步,替换 msdart.dll
QQ 依然无法打开,财智 6 也无法打开"定位输入点 XXXX 在 msdart.dll 上错误",遂爬文得到这个文章。替换了文件,财智 6 可以打开界面了,但依旧无法打开账簿,QQ 依然无法登陆。这个要注意 msdart.dll 的大小应该是 104K 的才对,我系统原来的是 124k 的,运行不了。网上下载的 MDAC2.8 包(应该是 RTM 版的)msdart.dll 文件是 140K,这个也不能用,一定要 104k 的才行。

第三步,重新注册所有 dll
查看了系统事件查看器,发现了几处错误事件而且都是下面这种

Windows 无法加载可扩展计数器 DLL msppcntr,数据段中的第一个 DWORD 是 Windows 错误码。

遂再爬文,爬到了这个,才恍然大悟,装完 MDAC 忘记重新注册 dll 了。故重新注册了一遍,嘿嘿,打开 QQ,TM 都能上了。财智 6 也能打开账本了。sonistage 也能打开曲目库了。嘿,算是成功了吧~

经过这么多的磨练,终于算解决了大部分的困扰,希望还在水深火热中的你,在犹豫是否重装前也尝试下我的方法。很多时候,重装不是解决问题的好方法,学着在解题中成长也是一种乐趣 XD

添加新评论